package com.nineclock.attendance.service;

import com.nineclock.attendance.dto.AttendPunchDTO;
import com.nineclock.attendance.dto.AttendPunchUserWholeDayDTO;

import java.io.IOException;
import java.util.List;

public interface AttendPunchService {

    /**
     * 移动端打卡
     * @param punchDTO
     */
    public void punch(AttendPunchDTO punchDTO);

    /**
     * 查询当前用户打卡数据
     * @return
     */
    public AttendPunchUserWholeDayDTO getPunchData();

    /**
     * 根据开始时间 - 结束时间 , 获取当前企业所有员工的考勤打卡数据
     * @param startTime
     * @param endTime
     * @return
     */
    public List<AttendPunchDTO> queryMembers(String startTime, String endTime);

    /**
     * 导出指定时间范围内的考勤列表数据
     * @param startTime
     * @param endTime
     */
    public void export(String startTime, String endTime) throws IOException;

    /**
     * 根据企业ID, 生成当前企业本月的所有员工的考勤列表, 生成Excel
     * @param companyId
     * @return
     */
    public String generateExcelReportByCompanyId(Long companyId);
}
